package algorithmTopics.queue;

/**
 * 队列 的接口
 *
 * @author 86155
 * @date 2025/05/23
 */
public interface Queue<E> {

    /**
     * 在队列尾部添加
     *
     * @param val val
     * @return boolean
     */
    boolean offer(E val);

    /**
     * 拉取队列的值，并删除
     * 空就返回null
     * @return {@link E}
     */
    E poll();

    /**
     * 只获取 不删除队列头的值
     * 空就返回null
     * @return {@link E}
     */
    E peek();

    /**
     * 是否为空
     *
     * @return boolean
     */
    boolean isEmpty();
}
